/**
 * Copyright (C), 2019-2019, XXX有限公司
 * FileName: RoleDao
 * Author:   mahuilin
 * Date:     2019/1/17 0017 17:13
 * Description: 角色数据交换层
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
package com.pti.usermanager.dao.api;


import com.pti.usermanager.dao.po.RolePo;
import com.pti.usermanager.web.dto.request.SaveRoleRequest;
import com.pti.usermanager.web.dto.request.UpdateRoleRequest;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 〈角色数据交换层〉<br>
 *
 * @author mahuilin
 * @create 2019/1/17 0017
 * @since 1.0.0
 */
public interface RoleDao {
    //角色分页加模糊查询
    List<RolePo> findAll(String roleNm);
    //根据角色id查看对象
    RolePo findAllByRoleId(@Param("roleId") Long roleId);
    //添加角色
    void saveRole(@Param("saveRoleRequest") SaveRoleRequest saveRoleRequest);
    //修改角色
    void updateRole(@Param("updateRoleRequest") UpdateRoleRequest updateRoleRequest);
    //删除角色
    void delRole(@Param("roleId") Long roleId);
    //分配用户
    void saveUserByRidAndUid(@Param("roleId") Long roleId,
                             @Param("usrId") Long usrId);
    //删除分配用户关联
    void deleteUserByRid(@Param("roleId") Long roleId);
    //分配菜单
    void saveMenuByRidAndMid(@Param(value = "roleId") Long roleId,
                             @Param(value = "menuId") Long menuId);

    //删除分配菜单关联
    void deleteMenuByRid(@Param("roleId") Long roleId);

}